package com.xbongbong.pro.script.pojo.dto;

import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 *阶段设置脚本
 *
 *@author weijianxun
 *@date 2023/1/11 9:02
 */
@Setter
@Getter
public class StageSettingScriptDTO implements Serializable {
    private static final long serialVersionUID = -4564410725964106625L;

    private String xbbCode;

    /**
     * id
     */
    private Long idGt;

    private List<Long> idList;

    /**
     * 阶段类型【0普通流程阶段、1结束阶段-成功、2结束阶段-失败】
     */
    @NotNull(message = "阶段类型不能为空")
    private List<Integer> types;

    /**
     * 业务类型
     */
    @NotNull(message = "业务类型不能为空")
    private Integer businessType;

    /**
     * 公司
     */
    private List<String> corpidList;

    /**
     * 排除公司
     */
    private List<String> corpidNotIn;

    /**
     * 更新的数据
     */
    @NotNull(message = "带刷新数据不能为空")
    private JSONObject data;

    /**
     * 用于更新数据时需要什么特殊的操作:
     *
     * 业务类型       值                  含义
     * 销售机会       1                   刷新是否是新建合同时，自动跳转到此阶段
     *
     */
    private Integer specialMark;

    /**
     * 刷新类型：
     * 1： 阶段表（例如： tb_sale_stage）
     * 2: 镜像阶段表（tb_mirror_stage）
     * 3: 备份阶段表（tb_stage_retain）
     */
    @NotNull(message = "刷新类型不能为空")
    private Integer refreshType;

}
